perm filename GOGOL.28P[S,AIL] blob
sn#266394 filedate 1977-02-27 generic text, type C, neo UTF8
COMMENT ā VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 DSCR FIX, FLOAT UUO'S (FIXQ,FLOAQ,SNGLQ)
C00005 ENDMK
Cā;
DSCR FIX, FLOAT UUO'S (FIXQ,FLOAQ,SNGLQ)
PAR MOVE FF,ARG ; JRST FIX/FLOA Q; RET VIA USRXIT
RES FIXED POINT EQUIVALENT IN AC SPECIFIED IN AC FIELD OF UUO
ā
FIXQ: MULI FF,400 ;THIS ALGORITHM STOLEN FROM F4.
TSC FF,FF
EXCH FF,A
ASH FF,-243(A)
JRST FXFLT ;STORE IN RIGHT PLACE.
FLOAQ: IDIVI FF,400000
SKIPE FF
TLC FF,254000
TLC A,233000
FAD FF,A
FXFLT: LDB A,[POINT 4,JOBUUO,12] ;RESULT REGISTER
CAIG A,1 ;NUMBER OF AC'S SAVED
ADDI A,-1(P) ;ADJUST TO FIND STACK SPOT
MOVEM FF,(A) ;AND RETURN RESULT
JRST USRXIT ;AND RETURN TO USER
;;%DU% JFR 11-26-76
SNGLQ:
;;#YW# 3! JFR 2-8-77 1ST WORD ALREADY IN FF. JUST GET 2ND WORD
JUMPG FF,SNGLQ1 ;JUMP POSITIVE
JUMPE A,FXFLT ;EXIT IF ZERO
SUBI A,1 ;SPECIAL CASE FOR NUM=1B1
;;%YZ% pmf 2-26-76 600000,,0 is a screw case in pdp-10 hardware
CAMN FF,[600000,,0] ;SCREW CASE?
TLO A,(1B1) ;FORCE ROUNDING IN THIS CASE
SNGLQ1: TLNN A,(1B1) ;ROUNDING NEEDED
JRST FXFLT ;NO, RETURN
CAME FF,[377777,,-1] ;YES, WILL NUMBER OVERFLOW
AOSA FF ;NO, ROUND THE HIGH ORDER WORD
FSC FF,1 ;YES, FORCE A FLOATING OVERFLOW
JUMPL FF,FXFLT ;IS THE NUMBER POSITIVE
TLO FF,400 ;YES, FORCE MOST SIGNIF. BIT ON
JRST FXFLT
;;%DU% ā